Skip to content

feat(integrations): public task_due trigger + public CI + ecosystem README#19

Open
johnxie wants to merge 3 commits into
masterfrom
feat/task-due-public-webhook-api
Open

feat(integrations): public task_due trigger + public CI + ecosystem README#19
johnxie wants to merge 3 commits into
masterfrom
feat/task-due-public-webhook-api

Conversation

@johnxie

@johnxie johnxie commented Jun 19, 2026

Copy link
Copy Markdown
Member

Modernizes the Taskade Integration Kit end to end: the task_due trigger moves onto the public Action API v2, the repo becomes installable by anyone, and the README is reframed around the Taskade ecosystem & Genesis. Three commits, each independently reviewable.

1 — task_due → public Action API v2

Moves the trigger off Taskade's internal /webhooks/zapier/* routes onto the public, documented endpoint any third party can use.

Before After
Subscribe POST /webhooks/zapier/subscribe { hookUrl, triggerType:'TaskDue', … } POST /api/v2/subscribeWebhook { targetUrl, triggerType:'task.due' }
Unsubscribe DELETE /webhooks/zapier/unsubscribe?hookId= POST /api/v2/unsubscribeWebhook { hookId }

Pro+ (free/Starter → 402). Account-level. performList still uses the internal sample route (no public "recent due tasks" endpoint yet — noted in code). Dependency is LIVE: taskade/taskcade#26765 shipped in v6.188.0 (f92f6623ed); verified against the live route (methods, bodies, { ok, hookId }).

2 — Public CI (folds in #20)

CI was red on every branch incl. master: package.json listed the private @taskade/eslint-plugin (GitHub Packages) in dependencies, so yarn install --frozen-lockfile returned 401 for anyone without taskade-org access — no external contributor could even install this public repo. Dropped the private dep, swapped .eslintrc.json to a self-contained public config, added a CI lint step. This is what turns the check green.

3 — Discoverability overhaul (README + CONTRIBUTING)

Branded header + tight badge row, an ecosystem cross-link table (taskade/taskade · mcp · docs · awesome-vibe-coding · sample-app), a Genesis framing ("how the AI-native workspace reaches the outside world"), an honest Platforms table (Zapier live · n8n source/publish-pending · others build-on-API), clarified OAuth2-vs-PAT auth, and a new CONTRIBUTING.md.

Reviewed by a 3-lens adversarial pass (accuracy / Geist taste / newcomer) — every link checked 200, capabilities table verified against src/, and every claim verified true on this branch.

Verified locally

yarn install · yarn lint · yarn build · yarn test (4/4) all green — no private registries, no auth.

🤖 Generated with Claude Code

…lls everywhere

The repo listed @taskade/eslint-plugin (a PRIVATE GitHub Packages package) in
`dependencies`, and .eslintrc.json extended `plugin:@taskade/base` from it. So
`yarn install --frozen-lockfile` returned 401 Unauthorized for anyone without
taskade-org package access — every CI run (master + all PRs) was red, and no
external contributor could install or build this PUBLIC integration kit.

The plugin was lint-only and CI never even ran lint, so it was pure breakage.

- Remove the private dependency; regenerate yarn.lock.
- Replace .eslintrc.json with a self-contained PUBLIC config (eslint +
  @typescript-eslint, lenient on the existing require()/any/@ts-ignore usage).
- Add a `lint` script and run it in CI — now that linting is public and the
  code passes, CI actually enforces it.

Verified locally: yarn install / yarn lint / yarn build / yarn test (4/4) all
green. Unblocks #19 and every future contributor.
…cribeWebhook)

Move the task_due trigger off the internal /webhooks/zapier/{subscribe,unsubscribe}
routes onto the public, documented Action API v2:

- performSubscribe -> POST /api/v2/subscribeWebhook { targetUrl, triggerType:'task.due' }
- performUnsubscribe -> POST /api/v2/unsubscribeWebhook { hookId } (was DELETE + query param)
- account-level: the public endpoint ignores scope, so space/project inputs no longer
  narrow the subscription (kept for forward-compat once scoped subscriptions ship)
- requires a paid plan (Pro+); free/Starter receive 402
- performList still uses the internal sample route (no public equivalent yet)

Depends on taskcade#26765 (subscribeWebhook endpoint + paywall), now merged.
README: drop the 'in progress' note; bump 1.1.0 -> 1.2.0.
@johnxie johnxie force-pushed the feat/task-due-public-webhook-api branch from 45e195a to 40d73be Compare June 21, 2026 08:59
@johnxie johnxie changed the title feat(task_due): subscribe via the public Action API v2 feat(task_due): subscribe via the public Action API v2 (+ public-CI fix) Jun 21, 2026
…ONTRIBUTING

Reframe the README around the Taskade ecosystem and Genesis, add a tight badge
row (Zapier/CI/License/API Docs), an ecosystem cross-link table (taskade,
mcp, docs, awesome-vibe-coding, sample-app), an honest Platforms table (Zapier
live, n8n source/publish-pending, others build-on-API), and a clarified
OAuth2-vs-PAT auth note. Add CONTRIBUTING.md now that the repo installs with no
auth or private registries. Every claim verified against the code on this
branch (task_due on the public API, yarn lint present, no private deps).
@johnxie johnxie changed the title feat(task_due): subscribe via the public Action API v2 (+ public-CI fix) feat(integrations): public task_due trigger + public CI + ecosystem README Jun 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant